# 先写大致的框架然后补充细节
import random


# 猜数字游戏
def random_game():
    """
    规则如下：
    - 可以不间断的进行猜数字游戏环节，找到猜对了，结束程序，猜不对，可以不断的进行游戏，并且需要提示用户猜打了还是猜小了。
    - 拓展功能实现：
      - 1.最后需要统计出，用户猜了多少次才猜对。
      - 2.每一个用户的初始分数为100，每猜错一次扣5分，最后程序结束，统计用户的得分
    """
    # 生成随机数 0-20
    guess_num = random.randint(0, 20)
    # 用于计数
    count = 0
    # 初始分数
    init_score = 100
    while 1:
        count += 1
        # 接收用户输入  获取的都是字符串类型
        num = input("enter you guess num:")
        num = int(num)
        if guess_num == num:
            print(f"猜对了,你一共猜了{count}次，获得{init_score}分")
            break
        elif guess_num > num:
            init_score -= 5
            print("猜小了")
        else:
            init_score -= 5
            print("猜大了")


# 算法实现
def algorithm_1():
    """
    有三个变量a,b,c,其值均为自然数，其中a2+b2=c2且a+b+c=1000,求出满足要求a，b，c的所有组合。
    """
    # 根据 a+b+c=1000，且为自然数 可以判断出 a、b、c大小在 1000 内
    # 获取所有a,b的取值 则对应获取c的取值 然后根据条件打印出相关值
    for a in range(1001):
        for b in range(1001):
            c = 1000 - b - a
            if a + b + c == 1000 and a**2 + b**2 == c**2:
                print(a, b, c)


# 最大值放到最后
def algorithm_2():
    """
    找寻出列表中存储元素的最大值，且将其移动到列表最后的位置
    """
    alist = [1, 39, 44, 11, 23, 14]
    # 分析可得 列表里n个数需要比较n-1次
    for i in range(len(alist) - 1):
        if alist[i] > alist[i + 1]:
            alist[i], alist[i + 1] = alist[i + 1], alist[i]

    print(alist)


random_game()
algorithm_1()
algorithm_2()
